package string

// 有两个排序数组 a1 a2 ，内存在a1尾部有足够的空间容纳a2
// 把a2中的所有数字插入a1中，并且所有的数字是排序的

// 解法一：从尾到头比较a1和a2位置的数字插入到a1合适的位置
// 从后往前复制 以此减少元素移动次数

func StrCopyA1A2(a1, a2 []int, aLen int) []int {
	if len(a1) == 0 {
		return a1
	}
	if len(a2) == 0 {
		return a1
	}
	var insert = aLen + len(a2) - 1
	var p1 = aLen - 1
	var p2 = len(a2) - 1
	for p1 >= 0 && p2 >= 0 {
		if a1[p1] >= a2[p2] {
			a1[insert] = a1[p1]
			p1--
		} else {
			a1[insert] = a2[p2]
			p2--
		}
		insert--
	}
	return a1
}
